{ "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "# Estimating overall rates and yields from pseudo batch transformed data" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "This tutorial will show how to use the fedbatch data correction package to calculate rates and yields from measurements. We will use simulated data to showcase the workflow. The simulated data here resembles a system where online measurements are available. This could for example to the Satorious AMBR(R) or M2Lab Bio/Robolector cultivation systems." ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "## loading fedbatch data" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/Users/s143838/.virtualenvs/pseudobatch-dev/lib/python3.10/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", " from .autonotebook import tqdm as notebook_tqdm\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "{'stan_version_major': '2', 'stan_version_minor': '29', 'stan_version_patch': '2', 'STAN_THREADS': 'false', 'STAN_MPI': 'false', 'STAN_OPENCL': 'false', 'STAN_NO_RANGE_CHECKS': 'false', 'STAN_CPP_OPTIMS': 'false'}\n" ] } ], "source": [ "import matplotlib.pyplot as plt\n", "import pandas as pd\n", "import numpy as np\n", "import seaborn as sns\n", "from patsy import dmatrices\n", "import statsmodels.api as sm\n", "\n", "from pseudobatch import pseudobatch_transform_pandas\n", "from pseudobatch.datasets import load_standard_fedbatch" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "First, we will load the standard fed-batch process dataset and take only the time points where a sample was take" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "fedbatch_df_measurement = load_standard_fedbatch(sampling_points_only=True)" ] }, { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "Lets start with getting an overview of the data that we have imported by look at a part of the dataframe." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | timestamp | \n", "sample_volume | \n", "c_Biomass | \n", "c_Glucose | \n", "c_Product | \n", "v_Volume | \n", "v_Feed_accum | \n", "
---|---|---|---|---|---|---|---|
0 | \n", "10.000000 | \n", "170.0 | \n", "1.337852 | \n", "0.075016 | \n", "0.694735 | \n", "1015.906036 | \n", "15.906036 | \n", "
1 | \n", "17.142857 | \n", "170.0 | \n", "2.664023 | \n", "0.075103 | \n", "1.794378 | \n", "867.753513 | \n", "37.753513 | \n", "
2 | \n", "24.285714 | \n", "170.0 | \n", "5.175767 | \n", "0.075053 | \n", "3.877080 | \n", "733.638872 | \n", "73.638872 | \n", "
3 | \n", "31.428571 | \n", "170.0 | \n", "9.612284 | \n", "0.075015 | \n", "7.555778 | \n", "619.956743 | \n", "129.956743 | \n", "
4 | \n", "38.571429 | \n", "170.0 | \n", "16.561967 | \n", "0.075011 | \n", "13.318358 | \n", "533.452797 | \n", "213.452797 | \n", "